﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace UIDesigner.SurfaceProperties
{
    public enum CancelOptions
    {
        None,
        Cancel,
        Close
    }

    public enum SurfacePropertyCategory
    {
        ObjectCreation,
        ObjectSave,
        ObjectDeletion,
        ObjectBinding,
        UIReset
    }

    public enum SurfaceActionCategory
    {
        RemoveSurfaceControls,
        ApplySavedProperty
    }

    public enum SurfaceObjectLevelProperty
    {
        CancelOptions,
        ApplySelection
    }

    public enum SurfaceType
    {
        Form,
        UserControl
    }

    [Flags()]
    public enum PostActions
    {
        None = 0,
        NotifyParent = 1,
        HideSurface = 2,
        CloseSurface = 4,
        DisableControls = 8,
        SetControlsInvisible = 16,
        RemoveBaseControlFromContainer = 32
    }

    public enum BindStateOptions
    {
        BindOnLoad,
        BindOnState,
        None
    }

    [Flags()]
    public enum PreBindOptions
    {
        DisableControls,
        SetControlsInvisible,
        None
    }

    [Flags()]
    public enum PostBindExistingOptions
    {
        ImmediatelyEditable,
        DisabledWithEditButton,
    }

    [Flags()]
    public enum PostBindNewOptions
    {
        ImmediatelyEditable,
        DisabledWithCreateButton
    }

    public enum CreateOptions
    {
        None,
        CreateNewButton,
        UseExistingButton,
        RequireParentRequestCreate,
        CreateOnState
    }

    public enum DeleteOptions
    {
        None,
        DeleteButton,
        RemoveButton,
        UseExistingButton,
        RequireParentRequestDelete,
        DeleteOnState
    }

    [Flags()]
    public enum CloseActions
    {
        None,
        Save,
        Restore,
        Delete
    }

    public enum ResetOptions
    {
        None,
        ResetButton,
        ClearButton,
        UseExistingButton,
        RequireParentRequestReset,
        ResetOnState
    }

    public enum SaveOptions
    {
        None,
        SaveButton,
        ApplyButton,
        AddButton,
        UseExistingButtons,
        RequireParentRequestSave,
        SaveOnState
    }
}
